import Vue from 'vue'
import App from './App.vue'
import router from './router'
// 在js文件中调用store里面的数据和方法，步骤一:引入store这个模块，里面的所有数据，和模块里面的数据都能使用
import store from '@/store'




Vue.config.productionTip = false

// 样式初始化
import "reset-css"
// 引入公共样式
import "./assets/css/public.css"
// 引入拼图验证码库
import SlideVerify from 'vue-monoplasty-slide-verify'
Vue.use(SlideVerify)


// △路由守卫:前置守卫beforeEach/后置守卫afterEach; 全局守卫beforeEach/独享守卫beforeEnter/组件内守卫beforeRouterEnter
// 一.路由全局前置守卫---但是，从哪个页面进入都会执行这个代码
// 不管从哪个页面去个人中心页面，都要进行登录判断
// router.beforeEach((to, from, next) => {
//   // to.path要去到路由(页面)
//   // from.path从哪个路由去
//   // next()是一个函数，一定要调用该方法，否则补发resolve这个beforeEach钩子函数

//   // 需求:当去user页面是，先判断是否登录，若已经登录，就正常进入user，如果没有登录，就提示登录，并打开登录模态框，如果在每个页面都写判断的代码，非常冗余，但是在全局设置路由前置守卫，就只要一次就搞定
//   if (to.path == '/user') {
//     let token = localStorage.getItem('token')
//     if (token) {
//       next();
//     } else {
//       // alert('请先登录')
//       // 在js文件中调用store里面的数据和方法，步骤二:使用规定格式
//       // 使用actions方法==>dispatch
//       store.dispatch('showToast/asyncChangeIsShowToast', {
//         isShow: true,
//         msg: '请先登录',
//         type: 'danger'
//       })
//       setTimeout(() => {
//         store.commit('showModal/changeIsShowLoginModal', true)
//       }, 2000);
//       return;
//     }
//   }
//   next();//其它页面无需判断，正常进入
// })
// 路由独享守卫（个人中心的路由上配置，也就是router中个人中心路由上）---只在去个人中心页面时执行代码


// 此处相当于定义了一个全局变量(Vue.prototype.变量名=值)  所有的组件都可以访问到该变量
Vue.prototype.imgBaseUrl = 'http://sc.wolfcode.cn'//这个域名可能会改变，一旦改变，使用了的组件都要做修改，如果在这里定义好，就只需要在此处修改

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
